﻿using Admin.NET.Application.Entity;

namespace Admin.NET.Application;

/// <summary>
/// 设备信息输出参数
/// </summary>
public class DeviceInfoOutput
{
    /// <summary>
    /// 主键Id
    /// </summary>
    public long Id { get; set; }

    /// <summary>
    /// 设备名称
    /// </summary>
    public string DeviceName { get; set; }

    /// <summary>
    /// 设备编号
    /// </summary>
    public string DeviceNo { get; set; }

    /// <summary>
    /// 描述
    /// </summary>
    public string Description { get; set; }

    /// <summary>
    /// 地址
    /// </summary>
    public string Address { get; set; }

    /// <summary>
    /// 位置
    /// </summary>
    public string Position { get; set; }

    /// <summary>
    /// 位置类型
    /// </summary>
    public DevicePositionType DevicePositionType { get; set; }

    /// <summary>
    /// 图片URL
    /// </summary>
    public string ImageUrl { get; set; }

    /// <summary>
    /// 设备网关ID
    /// </summary>
    public long DeviceGateWayId { get; set; }

    /// <summary>
    /// 设备网关ID 描述
    /// </summary>
    public string? DeviceGateWayIdGateWayName { get; set; }

    /// <summary>
    /// 设备模板ID
    /// </summary>
    public long DeviceTemplateInfoId { get; set; }

    /// <summary>
    /// 设备模板ID 描述
    /// </summary>
    public string DeviceTemplateInfoIdTemplateName { get; set; }

    /// <summary>
    /// 直属机构Id
    /// </summary>
    public long OrgId { get; set; }

    /// <summary>
    /// 直属机构Id 描述
    /// </summary>
    public string? OrgIdName { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime? CreateTime { get; set; }

    /// <summary>
    /// 更新时间
    /// </summary>
    public DateTime? UpdateTime { get; set; }

    /// <summary>
    /// 创建者Id
    /// </summary>
    public long? CreateUserId { get; set; }

    /// <summary>
    /// 创建者姓名
    /// </summary>
    public string? CreateUserName { get; set; }

    /// <summary>
    /// 修改者Id
    /// </summary>
    public long? UpdateUserId { get; set; }

    /// <summary>
    /// 修改者姓名
    /// </summary>
    public string? UpdateUserName { get; set; }

    /// <summary>
    /// 软删除
    /// </summary>
    public bool IsDelete { get; set; }

    public Active Active { get; set; }
}

// 使用实际实体SysOrg,所以这里就删了
/*
[SugarTable("SysOrg")]
public class SysOrgTreeOutput: EntityBaseId
{
    [SugarColumn(ColumnName = "Name")]
    public string Label { get; set; }
    [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = false)]
    public long  Value { get; set; }
    public long Pid { get; set; }
    [SugarColumn(IsIgnore = true)]
    public List<SysOrgTreeOutput> Children { get; set; }
}
*/